package com.sky.mapper;

import com.sky.dto.GoodsSalesDTO;
import org.apache.ibatis.annotations.Mapper;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Mapper
public interface ReportMapper {
    /**
     * 根据日期范围查询营业额
     */
    List<BigDecimal> getAmountsByDates(List<LocalDate> dateList);
    /**
     * 根据日期范围查询新增用户数
     */
    List<Integer> getNewUsersByDates(List<LocalDate> dateList);
    /**
     * 根据日期范围查询总用户数
     */
    List<Integer> getTotalUsersByDates(List<LocalDate> dateList);
    /**
     * 根据日期范围查询订单总数
     */
    List<Integer> getOrderCountByDates(List<LocalDate> dateList);
    /**
     * 根据日期范围查询有效订单数
     */
    List<Integer> getValidOrderCountByDates(List<LocalDate> dateList);

    /**
     * 根据日期范围查询销量排名前10的商品
     */
    List<GoodsSalesDTO> getSalesTop10(LocalDate begin, LocalDate end);

    /**
     * 根据日期范围查询取消订单数
     */
    List<Integer> getCancelledOrdersByDates(List<LocalDate> dateList);

    /**
     * 根据日期范围查询待接单数
     */
    List<Integer> getWaitingOrdersByDates(List<LocalDate> dateList);

    /**
     * 根据日期范围查询待派送单数
     */
    List<Integer> getDeliverOrdersByDates(List<LocalDate> dateList);
}
